from sqlalchemy import Column, Integer, String, Float, Date, DateTime
# 从session模块导入Base而不是自己创建
from backend.database.session import Base

class StockZT(Base):
    """涨停股票数据模型"""
    __tablename__ = "stock_zt"
    
    id = Column(Integer, primary_key=True, index=True, autoincrement=True)
    serial_no = Column(Integer)  # 序号
    code = Column(String, index=True)  # 股票代码
    name = Column(String)  # 股票名称
    change_percent = Column(Float)  # 涨跌幅
    latest_price = Column(Float)  # 最新价
    turnover = Column(Float)  # 成交额
    circ_market_value = Column(Float)  # 流通市值
    total_market_value = Column(Float)  # 总市值
    turnover_rate = Column(Float)  # 换手率
    block_fund = Column(Float)  # 封板资金
    first_block_time = Column(String)  # 首次封板时间
    last_block_time = Column(String)  # 最后封板时间
    break_block_times = Column(Integer)  # 炸板次数
    limit_up_stat = Column(String)  # 涨停统计
    continuous_limit_up = Column(Integer)  # 连板数
    industry = Column(String)  # 所属行业
    created_at = Column(DateTime)  # 创建时间


class StockDailyKLine(Base):
    """股票日K线数据模型"""
    __tablename__ = "stock_daily_kline"
    
    id = Column(Integer, primary_key=True, index=True, autoincrement=True)
    code = Column(String, index=True)  # 股票代码
    date = Column(Date)  # 交易日期
    open = Column(Float)  # 开盘价
    high = Column(Float)  # 最高价
    low = Column(Float)  # 最低价
    close = Column(Float)  # 收盘价
    volume = Column(Float)  # 成交量
    turnover = Column(Float)  # 成交额
    amplitude = Column(Float)  # 振幅
    change_percent = Column(Float)  # 涨跌幅
    created_at = Column(DateTime)  # 创建时间


class StockMinuteKLine(Base):
    """股票分钟K线数据模型"""
    __tablename__ = "stock_minute_kline"
    
    id = Column(Integer, primary_key=True, index=True, autoincrement=True)
    code = Column(String, index=True)  # 股票代码
    datetime = Column(DateTime)  # 交易时间
    open = Column(Float)  # 开盘价
    high = Column(Float)  # 最高价
    low = Column(Float)  # 最低价
    close = Column(Float)  # 收盘价
    volume = Column(Float)  # 成交量
    turnover = Column(Float)  # 成交额
    created_at = Column(DateTime)  # 创建时间